import axios from 'axios'

const ajax = axios.create({
  baseURL: 'http://www.xiongmaoyouxuan.com/api'
})

// 包括拦截器里的loading图标有些时候在项目里并不会很好用，比如：一个页面同时发送多个请求就会由很多loading
// 就算写成单例，那么loading会在第一个请求开始发送到最后一个请求结束一直存在
// 请求拦截
ajax.interceptors.request.use(config => {
  // config就是请求的一些配置项，可以在这里加一些全局配置
  // 比如一些cookie或者token字段
  // 举个例子，比如所有接口都要把token发给后端来验证用户，那就可以在这里统一带上
  config.headers.token = 'dsfajhlkdsfj'
  return config
})
// 响应拦截
ajax.interceptors.response.use(resp => {
  // 如果项目中所有接口的返回的数据结构都是一样的，就可以在这里先把数据处理一下
  if (resp.status === 200) {
    if (resp.data.code === 200) {
      return resp.data.data
    } else {
      return {
        code: resp.data.code,
        msg: '请求失败'
      }
    }
  } else {
    return {
      status: resp.status,
      msg: '请求失败'
    }
  }
})

// 封装项目中所有的ajax请求

// 获取首页为分类导航的接口
// 把get请求得到的promise继续return出去，这样将来调用getTabs的时候就可以.then里处理数据了
const getTabs = () => ajax.get('/tabs')

const getTabById = id => ajax.get(`/tab/${id}`)

// 导出对象
export default {
  getTabs,
  getTabById
}
